package org.cerberus.platform.internal.components;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.cerberus.platform.api.PAttribute;
import org.cerberus.platform.api.PComponent;

@PComponent(classID="test.CollectionComponent")
public class CollectionComponent extends TestComponent {

	@PAttribute
	private List<String> stringList;
	@PAttribute
	private List<?> anyList;
	@PAttribute
	private List<AttributeComponent> componentList;
	
	@PAttribute
	private Map<String, String> stringMap;
	@PAttribute
	private Map<?, ?> anyMap;
	@PAttribute
	private Map<AttributeComponent, AttributeComponent> componentMap;
	
	@PAttribute
	private Collection<String> stringCollection;
	@PAttribute
	private Collection<?> anyCollection;
	@PAttribute
	private Collection<AttributeComponent> componentCollection;
	
	@PAttribute
	private Set<String> stringSet;
	@PAttribute
	private Set<?> anySet;
	@PAttribute
	private Set<AttributeComponent> componentSet;
	
	public List<String> getStringList() {
		return stringList;
	}
	public List<?> getAnyList() {
		return anyList;
	}
	public List<AttributeComponent> getComponentList() {
		return componentList;
	}
	public Map<String, String> getStringMap() {
		return stringMap;
	}
	public Map<?, ?> getAnyMap() {
		return anyMap;
	}
	public Map<AttributeComponent, AttributeComponent> getComponentMap() {
		return componentMap;
	}
	public Collection<String> getStringCollection() {
		return stringCollection;
	}
	public Collection<?> getAnyCollection() {
		return anyCollection;
	}
	public Collection<AttributeComponent> getComponentCollection() {
		return componentCollection;
	}
	public Set<String> getStringSet() {
		return stringSet;
	}
	public Set<?> getAnySet() {
		return anySet;
	}
	public Set<AttributeComponent> getComponentSet() {
		return componentSet;
	}
	public void setStringList(List<String> stringList) {
		this.stringList = stringList;
		notifyChange("stringList");
	}
	public void setAnyList(List<?> anyList) {
		this.anyList = anyList;
		notifyChange("anyList");
	}
	public void setComponentList(List<AttributeComponent> componentList) {
		this.componentList = componentList;
		notifyChange("componentList");
	}
	public void setStringMap(Map<String, String> stringMap) {
		this.stringMap = stringMap;
		notifyChange("stringMap");
	}
	public void setAnyMap(Map<?, ?> anyMap) {
		this.anyMap = anyMap;
		notifyChange("anyMap");
	}
	public void setComponentMap(
			Map<AttributeComponent, AttributeComponent> componentMap) {
		this.componentMap = componentMap;
		notifyChange("componentMap");
	}
	public void setStringCollection(Collection<String> stringCollection) {
		this.stringCollection = stringCollection;
		notifyChange("stringCollection");
	}
	public void setAnyCollection(Collection<?> anyCollection) {
		this.anyCollection = anyCollection;
		notifyChange("anyCollection");
	}
	public void setComponentCollection(
			Collection<AttributeComponent> componentCollection) {
		this.componentCollection = componentCollection;
		notifyChange("componentCollection");
	}
	public void setStringSet(Set<String> stringSet) {
		this.stringSet = stringSet;
		notifyChange("stringSet");
	}
	public void setAnySet(Set<?> anySet) {
		this.anySet = anySet;
		notifyChange("anySet");
	}
	public void setComponentSet(Set<AttributeComponent> componentSet) {
		this.componentSet = componentSet;
		notifyChange("componentSet");
	}
	
}
